Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tree deselect_all and update selected_item in SELECT_MULTI mode #21291

Conversation

AlexHolly
Copy link
Contributor

@AlexHolly AlexHolly commented Aug 22, 2018

closes #20548

Test Script
extends Control

onready var tree
var selected_label

var tree_item_1
var tree_item_2
var tree_item_3

func _ready():
	var vb = VBoxContainer.new()
	vb.set_position(Vector2(100,100))
	var hb = HBoxContainer.new()
	add_child(vb)
	vb.add_child(hb)
	
	selected_label = Label.new()
	selected_label.set_custom_minimum_size(Vector2(150,0))
	hb.add_child(selected_label)
	
	var hb2 = HBoxContainer.new()
	vb.add_child(hb2)
	
	var mode = OptionButton.new()
	mode.add_item("0 - Single")
	mode.add_item("1 - Row")
	mode.add_item("2 - Multi")
	mode.set_custom_minimum_size(Vector2(100,0))
	hb2.add_child(mode)
	mode.connect("item_selected", self, "mode_changed")
	
	var deselect_all = Button.new()
	deselect_all.set_text("Deselect All")
	deselect_all.connect("button_up", self, "deselect_all")
	hb.add_child(deselect_all)
	
	var deselect_item1 = Button.new()
	deselect_item1.set_text("Deselect Item 1")
	deselect_item1.connect("button_up", self, "deselect_item1")
	hb.add_child(deselect_item1)
	
	var deselect_item2 = Button.new()
	deselect_item2.set_text("Deselect Item 2")
	deselect_item2.connect("button_up", self, "deselect_item2")
	hb.add_child(deselect_item2)
	
	var deselect_item3 = Button.new()
	deselect_item3.set_text("Deselect Item 3")
	deselect_item3.connect("button_up", self, "deselect_item3")
	hb.add_child(deselect_item3)
	
	tree = Tree.new()
	tree.set_columns(2)
	tree.set_custom_minimum_size(Vector2(300,300))
	
	tree.select_mode = tree.SELECT_SINGLE
	
	tree.set_column_min_width( 0, 10 )
	tree.set_column_min_width( 1, 10 )
	tree.hide_root = true
	
	add(tree, "root")
	tree_item_1 = add(tree, "1")
	tree_item_2 = add(tree, "2")
	tree_item_3 = add(tree, "3")
	
	vb.add_child(tree)

func _process(delta):
	selected_label.set_text(str(tree.get_selected()))

func deselect_all():
	tree.deselect_all()

func deselect_item1():
	tree_item_1.deselect_all()

func deselect_item2():
	tree_item_2.deselect_all()

func deselect_item3():
	tree_item_3.deselect_all()
	
func mode_changed(id):
	tree.select_mode = id

func add(tree, name):
	var tree_item = tree.create_item(tree.get_root())
	tree_item.set_text(0, name)
	tree_item.set_cell_mode( 1, tree_item.CELL_MODE_STRING)
	tree_item.set_text(1, name)

	var label = Label.new()
	label.set_text(name)
	tree_item.set_metadata(0, label)
	
	return tree_item

~
~
I also suggest renaming a few things.(If you have any thoughts on it before I propose it in the tracker after this was merged).

TreeItem::deselect(int p_column) -> TreeItem::deselect_col(int p_column)
TreeItem::deselect_all() -> TreeItem::deselect()
Tree::item_deselected(int p_column, TreeItem *p_item) -> Tree::cell_deselected(int p_column, TreeItem *p_item)
Tree::deselect_row(TreeItem *p_item) -> Tree::item_deselected(TreeItem *p_item)

@akien-mga
Copy link
Member

Moving to 3.2 milestone as we're about to enter the beta stage and release freeze for Godot 3.1. Only bug fixes against issues of the 3.1 milestone (or enhancements to core features of the 3.1 roadmap) will be considered until 3.1-stable is released.

Note: If it's merged after 3.1-stable is released, this change might be considered for cherry-picking into a later 3.1.x release.

@akien-mga akien-mga modified the milestones: 3.1, 3.2 Dec 12, 2018
@AlexHolly AlexHolly force-pushed the tree-deselect_all-update-selected-item-multi-mode branch from 3570092 to 480a82f Compare February 10, 2019 17:13
selected_item now updates on selection changes
@AlexHolly AlexHolly force-pushed the tree-deselect_all-update-selected-item-multi-mode branch from 480a82f to 84f9dee Compare February 10, 2019 17:18
@akien-mga akien-mga modified the milestones: 3.2, 4.0 Oct 4, 2019
@Anutrix
Copy link
Contributor

Anutrix commented May 12, 2020

@AlexHolly Needs rebase.

@aaronfranke
Copy link
Member

This PR has not received any new commits for over a year and is abandoned, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tree node should have select()/deselect() functions
4 participants